package com.cskaoyan.javase.exception._1handle._2message;

/**
 * @description: 通过异常对象获取异常信息
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 怎么获取异常对象?
 *      1.try..catch捕获
 *      2.new出来
 *
 */
public class Demo {
    public static void main(String[] args) {
        //获取异常信息，返回字符串。打印的实际上是异常产生的原因
        //（不使用）String getMessage()

        //获取异常类名和异常信息，返回字符串。 打印的是异常产生的原因和所在类
        //（不使用）String toString()


        //获取异常类名和异常信息，以及异常出现在程序中的位置
        //（推荐使用）void printStackTrace()
        NullPointerException e1 = new NullPointerException();
        NullPointerException e2 = new NullPointerException("我是空指针异常");
        System.out.println(e2.getMessage());
        try {
            System.out.println(10/0);
        }catch (ArithmeticException ae){
            System.out.println(ae.getMessage());
            System.out.println(ae);
            ae.printStackTrace();
        }
        System.out.println("after");
        //使用IO流，将异常内容保存在日志文件中，以便查阅，早已过时，了解即可
        //现在跟日志相关操作的框架已经非常成熟的,只要使用框架,可以快速将错误信息打印到日志中,比如logback
        //（过时的日志处理方式）printStackTrace(PrintStream s)
    }
}
